﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine.EventSystems;
using UnityEngine;

namespace TowerDefence
{
    public class GroundEvents : MonoBehaviour
    {
        GameManager gameManager; // GameManager 引用

        BuildNode[] buildNodes; // 存储所有 BuildNode 的数组

        // 在对象启动时执行的方法
        private void Start()
        {
            gameManager = FindObjectOfType<GameManager>(); // 查找场景中的 GameManager 并赋值给 gameManager

            buildNodes = FindObjectsOfType<BuildNode>(); // 查找场景中的所有 BuildNode 并赋值给 buildNodes 数组
        }

        // 当鼠标点击时执行的方法
        private void OnMouseDown()
        {
            // 检查是否点击在 UI 元素上，如果是，则不执行后续操作
            if (EventSystem.current.IsPointerOverGameObject())
                return;

            // 使用 Utilities 工具类检查是否点击在 UI 元素上，如果是，则不执行后续操作
            if (Utils.Utilities.IsPointerOverUIObject())
                return;

            // 关闭 GameManager 中的所有窗口按钮
            gameManager.CloseAllWindowsButton();

            // 将 GameItemManager 中的 activeItem 设置为 false
            GameItemManager.activeItem = false;

            // 遍历所有 BuildNode
            foreach (BuildNode node in buildNodes)
            {
                // 如果 BuildNode 中的 towerScript 不为空，隐藏其范围 UI
                if (node.towerScript != null)
                    node.towerScript.HideRangeUI();

                // 将 BuildNode 的渲染颜色重置为初始颜色
                node.rend.material.color = node.startColor;

                // 将 BuildNode 的选择状态设为未选择
                node.isSelected = false;

                // 将 GameManager 中的 selectedBuildNode 设置为 null
                gameManager.selectedBuildNode = null;
            }
        }

    }
}
